package org.chartsy.welcome.content; import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.JPanel; import org.openide.awt.StatusDisplayer; import org.openide.util.Exceptions; import org.openide.util.ImageUtilities; import org.openide.util.NbBundle; /** * * @author Viorel */ public class MenuLink extends JPanel implements Constants, MouseListener { private String url; public static MenuLink createMenuLink(String key) { return new MenuLink(key); } public MenuLink(String key) { super(new BorderLayout()); Icon image = ImageUtilities.loadImageIcon( NbBundle.getMessage(MenuLink.class, "IMG_"+key), true); JLabel label = new JLabel(image); label.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); label.setOpaque(false); label.addMouseListener((MouseListener)this); setOpaque(false); add(label, BorderLayout.CENTER); setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); this.url = NbBundle.getMessage(MenuLink.class, "URL_"+key); } @Override public void mouseClicked(MouseEvent e) { try { DesktopUtil.browse(url); } catch (Exception ex) {Exceptions.printStackTrace(ex); } } @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) { StatusDisplayer.getDefault().setStatusText(url); } @Override public void mouseExited(MouseEvent e) { StatusDisplayer.getDefault().setStatusText(""); } }